package com.hotel.tv.services;

import com.autumn.domain.values.IntegerConstantItemValue;
import com.autumn.domain.values.StringConstantItemValue;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;

/**
 * 设备类型常量
 * <p>
 * </p>
 *
 * @description TODO
 * @author: 老码农
 * @create: 2020-04-21 15:03
 **/
public class DeviceTypeConstants {

    /**
     * 手机
     */
    public static final String MOBILE_PHONE = "MobilePhone";

    /**
     * 平板
     */
    public static final String MOBILE_COMPUTER = "MobileComputer";

    /**
     * 电视
     */
    public static final String TELEVISION = "television";

    private static final Map<String, StringConstantItemValue> NAME_MAP = new HashMap<>(5);

    static {
        StringConstantItemValue item = new StringConstantItemValue(MOBILE_PHONE, "手机", "");
        NAME_MAP.put(item.getValue(), item);
        item = new StringConstantItemValue(MOBILE_COMPUTER, "平板", "");
        NAME_MAP.put(item.getValue(), item);
        item = new StringConstantItemValue(TELEVISION, "电视", "");
        NAME_MAP.put(item.getValue(), item);
    }

    /**
     * 是否存在
     *
     * @param value 值
     * @return
     */
    public static boolean exist(String value) {
        if (value == null) {
            return false;
        }
        return NAME_MAP.containsKey(value);
    }

    /**
     * 获取名称
     *
     * @param value 值
     * @return
     */
    public static String getName(String value) {
        StringConstantItemValue item = NAME_MAP.get(value);
        if (item == null) {
            return "";
        }
        return item.getName();
    }

    /**
     * 获取项目
     *
     * @param value 值
     * @return
     */
    public static StringConstantItemValue getItem(String value) {
        return NAME_MAP.get(value);
    }

    /**
     * 项目集合
     *
     * @return
     */
    public static Collection<StringConstantItemValue> items() {
        return IntegerConstantItemValue.sorted(NAME_MAP.values());
    }

}
